From 2c28a0713d076cd28f99bcf70da0043fa5a95b90 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 24 Mar 2020 00:00:43 -0400 Subject: [PATCH] popovermenu: Make mnemonics work without Alt This is expected menu behavior. --- gtk/gtkpopovermenu.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c index edfbdb078c..23375dd0c1 100644 --- a/gtk/gtkpopovermenu.c +++ b/gtk/gtkpopovermenu.c @@ -34,6 +34,8 @@ #include "gtktypebuiltins.h" #include "gtkmodelbuttonprivate.h" #include "gtkpopovermenubar.h" +#include "gtkshortcutmanager.h" +#include "gtkshortcutcontroller.h" /** @@ -199,6 +201,7 @@ gtk_popover_menu_init (GtkPopoverMenu *popover) { GtkWidget *stack; GtkEventController *controller; + GList *controllers, *l; stack = gtk_stack_new (); gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE); @@ -217,6 +220,16 @@ gtk_popover_menu_init (GtkPopoverMenu *popover) controller = gtk_event_controller_motion_new (); g_signal_connect (controller, "leave", G_CALLBACK (leave_cb), popover); gtk_widget_add_controller (GTK_WIDGET (popover), controller); + + controllers = gtk_widget_list_controllers (GTK_WIDGET (popover), GTK_PHASE_CAPTURE); + for (l = controllers; l; l = l->next) + { + controller = l->data; + if (GTK_IS_SHORTCUT_CONTROLLER (controller) && + strcmp (gtk_event_controller_get_name (controller), "gtk-shortcut-manager-capture") == 0) + gtk_shortcut_controller_set_mnemonics_modifiers (GTK_SHORTCUT_CONTROLLER (controller), 0); + } + g_list_free (controllers); } static void -- 2.30.2